#pragma once

#include "../Utility.h"
#include "../EntityManager.h"
#include "../Stringhash/Stringhash.h"

struct BidData
{
	uint32 size;
	uint32 capacity;
	void* buffer;

	Entity* entity;
	float* quantity;
	float* quantity_traded;
	uint32* price;
	uint32* clearing_price;
	uint32* storage_index;

	BidData();
	~BidData();

	void Initialize(const uint32 set_capacity);
};

struct PriceTracking
{
	uint32 index;
	uint32 day[15];

	PriceTracking();
	void Insert(const uint32 price);
	const float Average();
};

// I shouldn't need to worry about this quite yet.
class ComodityCategory
{
private:
	struct Category
	{
		Stringhash name;	// 8
		int32 ratio;		// 12

		Category(FString comodityName, int32 quantity)
			: name(comodityName), ratio(quantity) { }
	};

	int32 numComodities;	// 4
	Category* comodity;		// 8

public:

};